Feed: sizeof(cat)
Title: Huawei E3131 and friends, on OS X Leopard (PowerPC)
Date: Thu, 02 Oct 2025 19:23:06 +0000
Link: http://sizeof.cat/post/huawei-e3131-and-friends-on-osx-leopard-powerpc/
 
[image 1]
 
You know I said in this article[2] “how I wish I could find a working PowerPC 
driver” for my Huawei E3131 3G modem? Well, today I decided to do another try 
and dig the old archives some more. I already had about 500Mb of drivers, all 
not working on PowerPC obviously, for various reasons (no ppc slice, using a 
newer version of IOKit, or simply won’t load), and today I think I went over 1GB
of drivers and Huawei partner binaries and ISOs.
 
After patching so many kexts that my fingers went numb, I ran into a kext that 
looked promising, except it didn’t trigger anything when I plugged my Huawei 
E3131 modem in a USB port, which means the device definitions were wrong. So, I 
opened HuaweiDataCardACMData.kext/Contents/Info.plist and I added the three 
interface definitions for the E3131 modem, PCui interface and diagnostic 
interface. The modified kext file can be found here[3], archived.
<key>HUAWEI_1506_DIAG</key>
<dict>
 <key>CFBundleIdentifier</key>
 <string>com.huawei.driver.HuaweiDataCardACMData</string>
 <key>HWInterfaceBaseName</key>
 <string>HUAWEIMobile-</string>
 <key>HWInterfaceSuffixName</key>
 <string>Diag</string>
 <key>IOClass</key>
 <string>HuaweiDataCardACMData</string>
 <key>IOProviderClass</key>
 <string>IOUSBInterface</string>
 <key>bConfigurationValue</key>
 <integer>1</integer>
 <key>bInterfaceNumber</key>
 <integer>3</integer>
 <key>idProduct</key>
 <integer>5382</integer>
 <key>idVendor</key>
 <integer>4817</integer>
</dict>
<key>HUAWEI_1506_MODEM</key>
<dict>
 <key>CFBundleIdentifier</key>
 <string>com.huawei.driver.HuaweiDataCardACMData</string>
 <key>HWInterfaceBaseName</key>
 <string>HUAWEIMobile-</string>
 <key>HWInterfaceSuffixName</key>
 <string>Modem</string>
 <key>IOClass</key>
 <string>HuaweiDataCardACMData</string>
 <key>IOProviderClass</key>
 <string>IOUSBInterface</string>
 <key>bConfigurationValue</key>
 <integer>1</integer>
 <key>bInterfaceNumber</key>
 <integer>0</integer>
 <key>idProduct</key>
 <integer>5382</integer>
 <key>idVendor</key>
 <integer>4817</integer>
</dict>
<key>HUAWEI_1506_PCUI</key>
<dict>
 <key>CFBundleIdentifier</key>
 <string>com.huawei.driver.HuaweiDataCardACMData</string>
 <key>HWInterfaceBaseName</key>
 <string>HUAWEIMobile-</string>
 <key>HWInterfaceSuffixName</key>
 <string>Pcui</string>
 <key>IOClass</key>
 <string>HuaweiDataCardACMData</string>
 <key>IOProviderClass</key>
 <string>IOUSBInterface</string>
 <key>bConfigurationValue</key>
 <integer>1</integer>
 <key>bInterfaceNumber</key>
 <integer>1</integer>
 <key>idProduct</key>
 <integer>5382</integer>
 <key>idVendor</key>
 <integer>4817</integer>
</dict>
 
To install this kext, unzip, copy the files to /System/Library/Extensions/ and 
load it using kextload.
$ unzip HuaweiDataCardACMData.kext.zip$ sudo cp -R HuaweiDataCardACMData.kext /System/Library/Extensions/$ sudo chown -R root:wheel /System/Library/Extensions/HuaweiDataCardACMData.kext$ sudo kextload /System/Library/Extensions/HuaweiDataCardACMData.kext
 
If you plug the Huawei E3131 modem into an USB port (and if it has CD mode 
deactivated), new devices will appear inside /dev/:
ls /dev/tty.HUAWEIMobile*/dev/tty.HUAWEIMobile-Modem /dev/tty.HUAWEIMobile-Pcui
 
You can use minicom or screen to connect to the /dev/tty.HUAWEIMobile-Pcui port 
and issue AT commands to the modem, or you can configure OS X networking to use 
the /dev/tty.HUAWEIMobile-Modem port to connect to the 3G network.
 
To configure networking, go to “System Preferences” -> “Network” -> 
“HUAWEIMobile-Modem”, put *99# as the phone number (or whatever your ISP gave 
you), click “Advanced” and select modem vendor as “Generic”, model as “GPRS GSM 
3G” and APN as “internet” or “net” (depends on your ISP). Click OK or Apply and 
now you can connect successfully.
 
I don’t suggest you install the Mobile Partner software since it’s in Java and 
it starts very slow, but if you want that you can either install this package[4]
or just unzip this archive[5] and copy Mobile Partner.app to /Applications (you 
will also need this Java library for serial comms[6]). Your choice. It will 
automatically detect the modem if you installed my patched kext and will connect
to your ISP network.
 
You can use screen or minicom to query the modem for capabilities, information, 
and to switch it from disk mode into modem mode (something a Linux-distro would 
normally do using the usb-modeswitch package).
$ ls /dev/tty.HUAWEIMobile*/dev/tty.HUAWEIMobile-Pcui$ screen /dev/tty.HUAWEIMobile-PcuiAT^SETPORT="FF;10,12,16"
OK
 
[image 7]
 
The AT commands that can be issued to the modem can be found in this parent 
article[2].
 
Links: 
[1]: http://sizeof.cat/post/huawei-e3131-and-friends-on-osx-leopard-powerpc/img/cover.jpg (image)
[2]: http://sizeof.cat/post/huawei-e3131-and-friends-on-macos-catalina/ (link)
[3]: http://sizeof.cat/post/huawei-e3131-and-friends-on-osx-leopard-powerpc/files/HuaweiDataCardACMData.kext.zip (link)
[4]: https://sizeof.cat/files/Mobile_Partner.pkg.zip (link)
[5]: https://sizeof.cat/files/Mobile_Partner.app.zip (link)
[6]: https://sizeof.cat/files/RXTX_Tiger.pkg.zip (link)
[7]: https://sizeof.cat/img/dial.png (image)

